Methods and systems for performance measurement of a communication link

ABSTRACT

Described are embodiments of a method for performance measurement of a communication device. The method comprises: executing active probing by a communication device coupled to another communication device via a network forming a communication link; reading operational data associated with the communication link in response to executing active probing; and measuring performance, by the communication device, of the communication link with reference to the communication link, the performance measured according to the read operational data.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of and claims priority to previouslyfiled and copending U.S. patent application Ser. No. 14/414,437,entitled “METHOD AND SYSTEM FOR PERFORMANCE MEASUREMENT OF ACOMMUNICATION LINK,” naming as inventors Sungho Yun, Carlos Garcia,Manikanden Balakrishnan and Wonjong Rhee, and filed Jan. 12, 2015, whichis the 371 national phase of International Patent Application No.PCT/US2012/046811, and filed Jul. 13, 2012, which applications arehereby incorporated by reference in their entireties.

BACKGROUND

Monitoring performance of a communication link is used, for instance,for proactively addressing and preventing user complaints, for decidingwhen to upgrade hardware associated with the communication link, fordeciding when to trigger an optimization algorithm to optimize thecommunication link, for verifying that the optimization algorithm hasindeed resulted in improved performance, etc.

The term “performance” herein refers generally to network throughput(e.g., TCP/UDP), latency, jitter, connectivity, error rates, powerconsumption, transmit power, etc. Improving performance of thecommunication system includes increasing throughput, reducing error rateand latency, improving jitter, power consumption, etc. for thecommunicating system. Monitoring performance generally refers todetermining and/or calculating one or more of the above performanceparameters associated with the communication link. The term “TCP” standsfor transmission control protocol. The term “UDP” refers to userdatagram protocol.

Communication system performance can be evaluated using traditionaltesting software applications such as iperf, netperf, ttcp, etc. Suchsoftware applications need to be installed on at least two communicationdevices where the software application on one communication devicegenerates and transmits test data to the other communication device, andwhere the software application on the other communication devicereceives the test data.

After transmitting and receiving the test data, statistics of the testdata transportation is evaluated to assess the performance of thecommunication link between the two communication devices. Testing of acommunication system or network to gauge its performance via suchtraditional testing software applications requires compatible softwareapplications to be installed or to be available at both communicationdevices that form the communication link.

For example, a user with a laptop visits a performance testing web site,and subsequently a testing software application is loaded to the user'sweb browser. Then the performance between the laptop and a server in theinternet is measured using the testing software application that wasalready available at the server.

In some cases, however, it can be difficult, if not impossible, to havetesting software applications available at both communication devicesthat are at the ends of the communication link of interest. Forinstance, when a network manager is interested in initiating aperformance measurement from a Wi-Fi Access Point (AP) to a smart-phone,the network manager does not have any means to install a softwareapplication to the smart-phone. Therefore, the network manager cannotinitiate performance measurement between the Wi-Fi AP and thesmart-phone. In general, it is difficult to have applications availableat communication devices coupled to a network or to initiate user-sideinstallation of software applications as a network manager.

BRIEF DESCRIPTION OF THE DRAWINGS

Embodiments of the disclosure will be understood more fully from thedetailed description given below and from the accompanying drawings ofvarious embodiments of the disclosure, which, however, should not betaken to limit the disclosure to the specific embodiments, but are forexplanation and understanding only.

FIG. 1 is a communication network which is operable to measureperformance of a communication link, according to one embodiment of thedisclosure.

FIG. 2 is a flowchart for measuring performance of a communication link,according to one embodiment of the disclosure.

FIG. 3 is a detailed flowchart for measuring performance of acommunication link, according to one embodiment of the disclosure.

FIG. 4 illustrates a sequence of multiple configuration settings for acommunication device, the settings used for determining operationsettings of the communication device after measuring performance of thecommunication link, according to one embodiment of the disclosure.

FIG. 5 is a processor-based system having machine-readable storagemedium with computer executable instructions operable to measureperformance of a communication link, according to one embodiment of thedisclosure.

DETAILED DESCRIPTION

To overcome limitations discussed above and other limitations, methodand system for measuring performance of a communication link withoutrequiring availability of testing software applications on both sides ofa communication link is described herein. In the embodiments discussedherein, the communication device transmitting test data has the testingsoftware application while the other communication device does not havethe testing software application.

The traditional method to test network performance, which is intrusiveto user network service, is referred to “active probing.” The term“active probing” herein generally refers to testing of a communicationnetwork by sending test pattern/data (e.g., Ethernet packets) over thenetwork from one communication device to another communication device,and then measuring the performance statistics of the sent testpattern/data at the receiver. Generally the receiving end does not sendany response data. The receiving end may share the reception statisticswith the transmitter i.e., the receiver shares a report with thetransmitter.

Traditional active probing software such as iperf, netperf, ttcp, etc,is run at application layers, where data transmission applicationsoftware and data reception application software are used together foraccurately measuring performance between the two transmission andreception devices i.e., measuring performance of a communication link.Traditional active probing is accurate because actual test data istransmitted in the same way as user traffic would be transmitted overthe network. Frequent active probing can be annoying to the user becauseit may cause delay in user traffic. It is possible to execute activeprobing without stopping user traffic, but such a measurement is notaccurate because the testing traffic needs to compete with the usertraffic, and furthermore active probing can significantly impair theuser experience due to lower throughput and/or higher latency. As anexample, throughput measurement is generally undervalued with acompetition, because measurement from active probing accounts for thesuccessfully received tests data and fails to account for the link'scapacity that is used for user traffic.

An advanced active probing method is described in (PCT Application No.PCT/US12/46810, entitled “Method and System for Performance Estimationof a Communication Link” filed concurrently with this application onJul. 13, 2012, incorporated by reference herein in its entirety, andco-owned by ASSIA Inc. of Redwood City, Calif., 94065, USA.), can avoidthe user traffic issue, by considering operational data that account forthe user traffic as well as the test traffic.

Furthermore, traditional active probing requires testing application tobe available at both communication devices, at the ends of thecommunication link, such that one communication device can transmittesting data (i.e., active data) and the other communication device canreceive the testing data using the same protocol for testing.

Another mechanism to gauge performance of a communication link and/orcommunication device is to monitor operational data associated with acommunication device. The operational data is generated sometimes as aby-product of normal operation of the device and sometimes to providebasic performance or operation information. In contrast to activeprobing, reading or collecting of such data is not intrusive to usernetwork service. Monitoring or reading of such communication data(operational data) is sometimes referred as “passive probing,” herein.

Throughput associated with the communication link may be roughlyestimated from typical operational data such as packet error counts andPHY-layer constellation information that indicate how many bits arebeing transmitted per data symbol.

The term “PHY” is an abbreviation for the physical layer of the OpenSystems Interconnection (OSI) model. An instantiation of PHY connects alink layer device (often called a MAC) to a physical medium such as anoptical fiber, copper wires or air (wireless communications).

The term “MAC address” is an abbreviation for Media Access Controladdress. MAC address is a unique identifier assigned to networkinterfaces for communications on the physical network segment. MACaddresses are used for numerous network technologies and most Instituteof Electrical and Electronics Engineers (IEEE) 802 network technologies,including Ethernet. Logically, MAC addresses are used in the MediaAccess Control protocol sub-layer of the OSI reference model.

In the embodiments discussed herein, operational data are used togetherwith active probing data to determine a reliable performancemeasurement. In one embodiment, the operational data are read fromcounters (also referred herein as operational counters) that increase incount value for successfully delivered packets.

The term ‘successful” herein refers to an indication suggesting safereceipt of a packet that is often confirmed by ACK (acknowledge) messagepacket. In another embodiment, operational data such as error counts,retransmission counts, modulation, signal strength, etc. are used toestimate the throughput.

During the process of passive probing i.e., reading of operational data,customer network service is not interrupted. Operational data isgenerally user visible or accessible data and is generally used fordebugging and basic performance monitoring of communications systems,but generally not for advanced performance estimation because the datawas not designed for the performance monitoring, does not carrysufficient information related to performance and there is no knownestimation algorithms with a high accuracy. Therefore, passive probingalone may not be enough to determine advanced performance of acommunication system and operational data generally includes countervalues that are only weakly associated with the current performance of acommunication system.

The embodiments herein disclose a method and system for performancemeasurement of a communication link without having testing applicationsoftware to be installed and used on both communication devices on bothends of the communication link. When one end of the two ends has suchapplication software, the embodiments herein can be used to obtainaccurate performance measurement. In one embodiment, active probing isperformed by sending special packets by a communication device over thecommunication link to another communication device such that testingsoftware application is installed on the transmitting communicationdevice but not on the receiving communication device. In one embodiment,active probing and passive probing are performed to measure performanceof the communication link.

In one embodiment, the packets may not be intended for any applicationat the receiver communication device, but ensures a full capacity use ofPHY (layer 1) regardless of the amount of user traffic duringperformance measurement. Such packets may be eventually dropped by thereceiver communication device at a certain communication layer (forexample, layer 3 or above depending on packet construction), but some ofthe lower layers (for example, layers 1 and 2) can process the packetand hence result in behaviors that are observable and countable from thetransmitting communication device. In one embodiment, active probing atany layer uses full capacity data at the PHY layer, because PHY is thelowest layer that all the other layers need to go through.

In one embodiment, passive operational counters at the transmittingcommunication device are used for counting successful transmissions ofpackets from the transmitting communication device to the receivingcommunication device. In one embodiment, between a Wi-Fi AP (AccessPoint, one of the communication devices) and a station (the othercommunication device), AP generates Ethernet packets directed to thestation's MAC address with no real application-layer program at thestation expecting and awaiting the packets.

In one embodiment, the Ethernet packets are transmitted from AP throughWi-Fi PHY/MAC layers (layers 1 and 2), received by station's Wi-FiPHY/MAC layers, and eventually dropped by the station's layer 3 andabove because there is no proper counterpart protocol or application toreceive the data. Even though the Ethernet packets get dropped, the IEEE802.11 PHY/MAC layer of station will send an ‘ACK’ signal for eachsuccessfully received Wi-Fi packet because of the inherent design ofWi-Fi PHY/MAC layer. Such ACK signals are counted in the Wi-Fi driver,and the count is available as operational data at the AP i.e., thetransmitter. The count is part of many operational data that areavailable at the AP, and this count can be used to accurately calculatethe total number of user data bytes that were successfully received bythe station.

For example, a number of layer-2 ACK messages are counted. In anotherexample, counters are read after a fixed duration of time. Because APgenerates enough Ethernet packets to make sure that PHY layer is runningat the highest (or near highest) speed possible, the calculated bytesdivided over the time duration represents an accurate throughput of theWi-Fi link. In one embodiment, the counters and bytes not only accountfor the test data generated by active probing, but also account for thetraffic generated by the user. The test data might or might not slowdown the user traffic. In either case, active probing makes sure thatthe data link is used at its maximum (or near maximum) capacity bytransmitting sufficient amount of data. Therefore, the embodimentsherein provide accurate measurements without requiring user traffic tobe stopped or delayed.

In one embodiment, there is no need for any application-layer softwareto be available at the station, and therefore the station can be used inany situation with access to one of the two network communicationdevices. The embodiment discussed herein can also be applied fromstation side to send Ethernet packets to AP and measure the throughputfrom station to AP. In such an embodiment, there is no need for anyapplication-layer software to be available at the AP. The embodiments ofthis disclosure are not limited to Ethernet packets or Wi-Fi. Theembodiments of this disclosure can be used whenever relevant operationaldata is made available at the transmitter side. Such operational datainclude Ethernet packet count in Wi-Fi, ATM cell count in ATM overDigital Subscriber Line (DSL), etc.

In one embodiment, flooding the PHY layer with test data can beimplemented with any type of data packets so long as the packets are notintended for network users. In one embodiment, Ping applications or anyother well known applications to flood the PHY can be used. In oneembodiment, if such a traffic generation (e.g., by Ping) is notfeasible, operational data can still be observed for long enough timesuch that there are time periods where user generated traffic is largeenough to use the full capacity of the PHY layer.

The term “Ping” herein refers to a computer network administrationutility used to test the reach-ability of a host on an Internet Protocol(IP) network and to measure the round-trip time for messages sent fromthe originating host to a destination computer. Ping operates by sendingInternet Control Message Protocol (ICMP) echo request packets to thetarget host and waiting for an ICMP response. In the process it measuresthe time from transmission to reception (round-trip time) and recordsany packet loss.

The embodiments herein can be used between two communication devices(also referred to as network elements) that are directly connected toeach other where Layer 1 or Layer 2 counts, i.e. operational data, areavailable. In one embodiment, flooding of test data can be achieved withany Wi-Fi frame (layer-3 IP layer can be anything including UDP, TCP,ICMP, completely missing, etc.) or other layer-2 including ATM orEthernet packets. Furthermore, any application layer programs that arecommonly available, such as Ping, can be used, too.

In the following description, numerous details are discussed to providea more thorough explanation of embodiments of the present disclosure. Itwill be apparent, however, to one skilled in the art, that embodimentsof the present disclosure may be practiced without these specificdetails. In other instances, well-known structures and devices are shownin block diagram form, rather than in detail, in order to avoidobscuring embodiments of the present disclosure.

Note that in the corresponding drawings of the embodiments, signals arerepresented with lines. Some lines may be thicker, to indicate moreconstituent signal paths, and/or have arrows at one or more ends, toindicate primary information flow direction. Such indications are notintended to be limiting. Rather, the lines are used in connection withone or more exemplary embodiments to facilitate easier understanding ofa circuit or a logical unit. Any represented signal, as dictated bydesign needs or preferences, may actually comprise one or more signalsthat may travel in either direction and may be implemented with anysuitable type of signal scheme.

In the following description and claims, the term “coupled” and itsderivatives may be used. The term “coupled” herein refers to two or moreelements which are in direct contact (physically, electrically,magnetically, optically, etc.). The term “coupled” herein may also referto two or more elements that are not in direct contact with each other,but still cooperate or interact with each other.

As used herein, unless otherwise specified the use of the ordinaladjectives “first,” “second,” and “third,” etc., to describe a commonobject, merely indicate that different instances of like objects arebeing referred to, and are not intended to imply that the objects sodescribed must be in a given sequence, either temporally, spatially, inranking or in any other manner. The term “substantially,”“approximately,” “nearly,” “about,” “close,” and such similar termsrefer to a quantity being within +/−20% of a target value.

FIG. 1 is a communication network 100 which is operable to measure andimprove communication link performance, according to one embodiment ofthe disclosure. In one embodiment, the communication network comprisesan optimization center 101 (e.g., server) communicatively coupled to oneor more communication devices 1031-N, where ‘N’ is a positive integer.In one embodiment, communication device 1032 is coupled to a CustomerPremises Equipment (CPE) modem 104 via a DSL link. In one embodiment,the CPE modem 104 is coupled to an access point (AP) 105. In oneembodiment, the AP 105 is coupled to one or more stations (STAs) 1061-M,where ‘M’ is a positive integer.

In one embodiment, performance measurement software/algorithm 102 isprovided (or installed) on a communication device (e.g., Wi-Fi device1031) which is used as a transmitter to send active probing data to oneor more other communication devices 1061-N.

While the embodiment of FIG. 1 does not show that the other devices 104,105, and 1061-M include instructions for performance measurement 102, inone embodiment any communication device coupled directly or indirectlyto the network (wired or wireless) may have instructions for measuringperformance of a communication link when the other communication deviceon the link does not have the performance measuring software. In oneembodiment, the performance measurement, from the performancemeasurement software 102, can be used to tune or configure thecommunication device to optimize the use of the communication link.

In one embodiment, the communication devices 1031-N include an accesspoint (AP); a base station; a wireless local area network (LAN) device;a Digital subscriber line access multiplexer (DSLAM); a gateway; aperformance enhancement device; a Digital Subscriber Line (DSL) CPEmodem; an in-home powerline device; a Home Phoneline Network Alliance(HPNA) based device; an in-home coax distribution device; a G.hn (GlobalHome Networking Standard) compatible device; an in-home meteringcommunication device; an in-home appliance communicatively interfacedwith the LAN; a wireless femtocell base station; a wireless WiFicompatible base station; a wireless mobile device repeater; a wirelessmobile device base station; nodes within an ad-hoc/mesh network; anset-top box (STB)/set-top unit (STU) customer electronics device; anInternet Protocol (IP) enabled television; an IP enabled media player;an IP enabled gaming console; an Ethernet gateway; a computing deviceconnected to the LAN; an Ethernet connected computer peripheral device;an Ethernet connected router; an Ethernet connected wireless bridge; anEthernet connected network bridge; and an Ethernet connected networkswitch.

In one embodiment, the one or more communication devices 1031-N areoperable to execute active probing to generate active probing data. Inthis embodiment, the one or more communication devices 1031-N floodtraffic on their respective communication links to the stations 1061-M,104, or any other communication device. In this embodiment, responsereceived by the one or more communication devices 1031-N from thestations 1061-M, 104, or any other communication device over thecommunication links is the active data, which is used by the respectiveperformance measurement softwares 102 in the corresponding one or morecommunication devices 1031-N to measure performance of theircommunication link, which can be then used to diagnose, train, tune, orconfigure the communication device to enhance performance of therespective communication link.

In one embodiment, the one or more communication devices 1031-N areoperable to execute active probing by transmitting active probing datafrom one communication device to another communication device. Forexample, communication device 1031 transmits active probing data tocommunication device 1061 and/or communication device 1032 transmitsactive probing data to CPE 104 over a DSL link. In this example, thetesting software is not available on the receiving communication devicei.e., communication device 1061 or CPE 104. In another example,communication device 1061 transmits active probing data to optimizationcenter 101 via communication links including 1071. In this example, thetesting software is available on the communication device 1061 and isnot available on the receiving communication device i.e., optimizationcenter 101.

In one embodiment, in response to transmitting test data (i.e.,initiating active probing) the one or more communication devices 1031-Nare further operable to wait for a predetermined time before reading theoperational data including counter values related to user data trafficon the respective communication links. In one embodiment, thepredetermined time is in the range of 0.001 seconds to 600 seconds. Inother embodiments other waiting periods may be used. In one embodiment,the waiting period is programmable by software or hardware.

So as not to obscure the embodiments of the disclosure, communicationdevices 1031, 1032, 104, and optimization center 101 are discussed. Thesame discussion is applicable to other communication devices. In oneembodiment, the communication device 1031 is further operable to receivean operational data report indicating amount of data or data received bythe other communication device (e.g., optimization center 101, and/orcommunication device 1032). In one embodiment, the report is a number ofACK message received in response to sending active probing data. Inanother embodiment, the report indicates a size of the successful datareceived by the receiving communication device in response to acommunication device sending active probing data.

In one embodiment, the one or more communication devices 1031-N areoperable to read operational data which includes data related to channel(e.g., links 1071-N, links between 105 and 1061-M, links between 1031and 1061-M, and/or DSL links between 1032 and 104) and its noisecondition, data relevant to the current setting of the communicationdevices 1031-N, and counter values related to user data traffic betweenthe communication devices 1031-N and another communication device (e.g.,optimization center 101, 105, 1061-M, 104, etc), wherein the operationaldata is relevant to the current settings of the communication device.Examples of such operational data are successful transmit packet counts,successful receive packet counts, ACK packet counts, errored packetcounts, discarded packet counts, retransmission counts, etc.

In one embodiment, the one or more communication devices 1031-N areoperable to train their respective performance estimation algorithmsaccording to the active probing data transmitted and the operationaldata. In one embodiment, the one or more communication devices 1031-Nare operable to, prior to executing active probing, read operationaldata (i.e., passive probing) from counter values related to the userdata traffic on communication links. For example, links 1071-N, linksbetween 105 and 1061-M, links between 1031 and 1061-M, and/or DSL linksbetween 1032 and 104.

In one embodiment, the counter values include at least one of packeterror counts, packet retransmission counts, successful ACK messagecounts, etc. In one embodiment, the one or more communication devices1031-N are operable to read operational data (i.e., execute passiveprobing) during or after executing active probing.

The accuracy of the measured performance of a communication link may bedependent on the characteristics of the user's traffic patterns and thecharacteristics of the noise and channel environments. In anenvironment, noise and channel might vary frequently. In anotherenvironment, noise and channel might vary infrequently. In yet anotherenvironment, noise and channel might vary frequently but mostly betweentwo states only. In one embodiment, the one or more communicationdevices 1031-N are operable to measure performance and then train orconfigure their respective operating algorithms as a function of one ormore criteria including at least one of: time of day, time of the week,type of communication device, manufacturer and model of equipment,equipment characteristics, firmware, backbone limitations, user'snetwork usage pattern, radio-frequency (RF) characteristics including atleast one of: signal power, frequency bands and mode of operation,environment statistics, or data on operation of communication devicesadjacent to the communication device, wherein the data includes at leastone of interference channels and levels. The noise may includeinterference from other communication devices operating in the samefrequency band.

In one embodiment, the one or more communication devices 1031-N areoperable to compute throughput of the communication devices 1031-N usingactive probing data for measuring performance of the communication link.

In the embodiments discussed herein, active data (i.e., test data) maycomprise Ethernet packets that are sent by a communication device (e.g.,device 1031) to another communication device (e.g., STA 1061) over acommunication link (dotted line), where the other communication device(e.g., STA 1061) does not have the application test software to measureassist with performance measurement of the communication link using thereceived active data. In such an embodiment, the Ethernet packetseventually get dropped by higher layers (e.g., layers 3, 4 etc). In thisembodiment, the lower IEEE 802.11 PHY/MAC layer of other communicationdevice (e.g., STA 1061) will send an ‘ACK’ signal for each successfullyreceived Wi-Fi packet from the communication device (e.g., device 1031)because of the inherent design of Wi-Fi PHY/MAC layer.

In one embodiment, such ACK signals are counted in the Wi-Fi driver ofthe communication device (e.g., device 1031), and the count is availableas operational data at the communication device (e.g., device 1031). Thecount is part of many operational data that are available at thecommunication device (e.g., device 1031). This count is used toaccurately calculate the total number of user data bytes that weresuccessfully received by the other communication device (e.g., STA 1061)by counting the number of layer-2 ACK messages or via similar countersfor a fixed duration of time. Because the communication device (e.g.,device 1031) generated enough Ethernet packets to make sure that PHYlayer is running at the highest speed possible, the calculated bytesdivided over the time duration represents the accurate throughput of theWi-Fi link (dotted line between 1031 and 1061).

In this embodiment, there is no need for any application-layer testingsoftware to be available at the other communication device (e.g., STA1061), and therefore the other communication device (e.g., STA 1061) canbe used in any situation with access to one of the two networkcommunication devices.

The embodiment discussed herein can also be applied from the othercommunication device (e.g., STA 1061) side to send Ethernet packets tothe communication device 1031 and measure the throughput from STA 1061to the communication device 1031. In such an embodiment, there is noneed for any application-layer testing software to be available at thecommunication device 1031 to measure performance of the communicationlink between STA 1061 and communication device 1031.

The embodiments of this disclosure are not limited to Ethernet packetsor Wi-Fi. The embodiments of this disclosure can be used wheneverrelevant operational data is made available at transmitter side. Suchoperational data include Ethernet packet count in Wi-Fi ATM cell countin ATM over DSL, etc.

FIG. 2 is a flowchart 200 for measuring performance of a communicationlink, according to one embodiment of the disclosure. Although the blocksin the flowcharts with reference to FIG. 2 are shown in a particularorder, the order of the actions can be modified. Thus, the illustratedembodiments can be performed in a different order, and someactions/blocks may be performed in parallel. The flowchart of FIG. 2 isillustrated with reference to the embodiments of FIG. 1.

In one embodiment, at block 201 active probing is executed by thecommunication device (e.g., 1031) that has the application softwareinstalled on it which is used for measuring performance of acommunication link associated with the communication device 1031 andanother communication device (e.g., STA 1061). In one embodiment, theactive probing is executed on the PHY layer. As discussed herein, activeprobing is executed by sending test pattern/data (e.g., Ethernetpackets) over the network from one communication device to anothercommunication device, and then measuring the response from the sent testpattern.

At block 202, operational data is read by the communication device 1031associated with the PHY layer in response to executing active probing.In one embodiment, the communication device 1031 is operable to readoperational data which includes data related to channel (e.g., dottedlink between 1031 and 1061) and its noise condition, data relevant tothe current setting of the communication devices 1031, and countervalues related to user data traffic between the communication devices1031 and the other communication device 1061, wherein the operationaldata is relevant to the current settings of the communication device1031. Examples of such operational data are successful transmit packetcounts, successful receive packet counts, ACK packet counts, erroredpacket counts, discarded packet counts, retransmission counts, etc.

At block 203, the communication device 1031 measures performance of thecommunication link according to the read operational data. In such anembodiment, the other communication device 1061 does not have theapplication software to assist with measuring performance of thecommunication link.

FIG. 3 is a detailed flowchart 300 for measuring performance of acommunication link, according to one embodiment of the disclosure.Although the blocks in the flowchart with reference to FIG. 3 are shownin a particular order, the order of the actions can be modified. Thus,the illustrated embodiments can be performed in a different order, andsome actions/blocks may be performed in parallel. The flowchart of FIG.3 is illustrated with reference to the embodiments of FIGS. 1-2.

The flowchart 300 illustrates the method performed for measuringperformance by the communication device 301 (e.g., 1031) which has theapplication test software installed on it. The method 300 alsoillustrates the method performed by the receiving communication device302 (e.g., 1061) which does not have the traditional application testsoftware installed for measuring performance of the communication linkbetween the communication device 301 (e.g., 1031) and the othercommunication device 302 (e.g., 1061).

At block 303, the communication device 301 (e.g., 1031) executes activeprobing. In this embodiment, test data is transmitted by thecommunication device 301 (e.g., 1031) to the other communication device302 (e.g., 1061). At block 304, the other communication device 302(e.g., 1061) receives the test data. Since, this communication device302 does not have the test application software on it, the test data iseventually dropped in higher layers (e.g., layer 3 or 4). However, uponreceiving the test data, the communication device 302 sends an ACKsignal or a similar message at block 305 to the communication device301, due to the inherent design of the underlying PHY/MAC communicationprotocol. This ACK signal is transmitted regardless of the test databeing dropped in higher layers. At block 310, the communication device302 eventually drops the received test data because the communicationdevice 302 determines that it does not have the means (i.e., applicationsoftware) to process the test data received from the communicationdevice 301.

At block 306, the communication device 301 receives the ACK message fromcommunication device 302. At block 307, the communication device 301executes passive probing i.e., reads various operational data associatedwith the communication device 301. In one embodiment, such ACK signalsare counted in the communication device 301 and the count is availableas operational data at the communication device 301. The count is partof many operational data that are available at the communication device301. In one embodiment, this count is used to accurately calculate thetotal number of user data bytes that were successfully received by theother communication device 301 by counting the number of layer-2 ACKmessages. Because the communication device 301 generates enough testdata (i.e., Ethernet packets) to make sure that PHY layer is running atthe highest speed possible, at block 308 the calculated bytes from thecount are divided over time duration to determine the accuratethroughput (i.e., a performance metric) of the communication link.

At block 309, the communication device 301 adjusts its configurationparameters e.g., power, transmission speed, etc. according to themeasured performance of the communication link. For example, if thethroughput of the communication link is above the needed value, thenthere is no need to over perform the communication system because thereis not much gain to be had. In such a case, the communication device 301can reduce its transmit power for the purpose of saving energy.

In one embodiment, measuring performance is performed for differentQuality-of-Service (QoS) settings in test data. For example, the testdata itself is generated with different QoS marking in the header suchthat performance per QoS marking can be observed. In one embodiment,this marking is controlled in the active probing data.

FIG. 4 illustrates a sequence 400 of measuring performance for multipleconfiguration settings of a communication device (e.g., 1031), themeasurements used for determining the desired operation settings of thecommunication device of the communication link, according to oneembodiment of the disclosure.

In this embodiment in FIG. 4, both passive probing and active probingare used to determine optimal performance settings for the communicationdevice 1031. In one embodiment, the throughput of the communicationdevice 1031 is tested with ‘N’ number of configurations, where ‘N’ is aninteger. In the example of FIG. 4, N=3. In other examples, ‘N’ can beany number.

In one embodiment, a single passive probing is followed by a singleactive probing for each measurement of a performance setting. In anotherembodiment, another passive probing is added after active probing. Ingeneral, any combinations of passive and active probing can be used foreach configuration setting such that more accurate decision can be madebased on which configuration setting is a better one to use for thecommunication link that is being evaluated.

Examples of possible configuration parameters for Wi-Fi AP are channel,radio band, channel bonding, guard interval length, fragmentationthreshold, retry limit, on/off of request to send (RTS) and clear tosend (CTS), beacon interval, transmit power, multiple antenna mode,preamble setting, modulation and coding scheme, Quality of Service (QoS)setting, etc.

In one embodiment, by collecting passive and active probing performanceresults with different configurations, it is possible to accuratelymeasure the performance for different configurations and subsequentlychoose a desirable configuration to operate the communication device1031.

For instance, the measured throughputs are 5 Mbps, 15 Mbps and 20 Mbpsfor setting 1 (default) 401, setting 2 402, and setting 3 403,respectively. If the goal is to maximize the throughput, thecommunication device 1031 can be configured with setting 3 403 such that20 Mbps can be provided to the user. In another example, the measuredlatencies are 75 ms (millisecond), 35 ms, and 5 ms for setting 1(default) 401, setting 2 402, and setting 3 403, respectively. If thegoal is to reduce (e.g., minimize) the latency, the communication device1031 can be configured with setting 3 403 such that 5 ms latency can beprovided to the user.

In one embodiment, probing (active and/or passive) may be used in anadaptive and/or real-time way. For instance, active probing may be usedonly when there is low volume of user traffic such that the impact touser experience is minimized. In another example, probing may be usedwhen the user or network manager would like to diagnose the situation(real-time use of the solution), too.

FIG. 5 is a processor-based system 500 having machine-readable storagemedium 504 with computer executable instructions 102/504 a which areoperable to measure performance of a communication link, according toone embodiment of the disclosure. The storage medium 504 and associatedcomputer executable instructions 102/504 a may be in any of thecommunication devices and/or servers discussed herein. Thecomputer-machine-readable/executable instructions 102/504 a are executedby a processor 501. Elements of embodiments are provided asmachine-readable medium for storing the computer-executable instructions(e.g., instructions to implement the flowcharts of FIGS. 2-4 and otherprocesses discussed in the description).

In one embodiment, the processor-based system 500 further comprises adatabase 502 to store data used by the instructions 102/504 a. In oneembodiment, the processor-based system 500 includes a network interface505 to communicate with other devices. In one embodiment, the componentsof the processor-based system 500 communicate with one another via anetwork bus 503.

The machine-readable storage medium 504 may include, but is not limitedto, flash memory, optical disks, hard disk drive (HDD), Solid StateDrive (SSD), CD-Read Only Memory (CD-ROMs), DVD ROMs, RAMs, EPROMs,EEPROMs, magnetic or optical cards, or other type of machine-readablemedia suitable for storing electronic or computer-executableinstructions. For example, embodiments of the disclosure may bedownloaded as a computer program (e.g., BIOS) which may be transferredfrom a remote computer (e.g., a server) to a requesting computer (e.g.,a client) by way of data signals via a communication link (e.g., a modemor network connection).

Reference in the specification to “an embodiment,” “one embodiment,”“some embodiments,” or “other embodiments” means that a particularfeature, structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments. The various appearances of “an embodiment,”“one embodiment,” or “some embodiments” are not necessarily allreferring to the same embodiments. If the specification states acomponent, feature, structure, or characteristic “may,” “might,” or“could” be included, that particular component, feature, structure, orcharacteristic is not required to be included. If the specification orclaim refers to “a” or “an” element, that does not mean there is onlyone of the elements. If the specification or claims refer to “anadditional” element, that does not preclude there being more than one ofthe additional element.

Furthermore, the particular features, structures, functions, orcharacteristics may be combined in any suitable manner in one or moreembodiments. For example, a first embodiment may be combined with asecond embodiment anywhere the particular features, structures,functions, or characteristics associated with the two embodiments arenot mutually exclusive.

While the disclosure has been described in conjunction with specificembodiments thereof, many alternatives, modifications and variations ofsuch embodiments will be apparent to those of ordinary skill in the artin light of the foregoing description. The embodiments of the disclosureare intended to embrace all such alternatives, modifications, andvariations as to fall within the broad scope of the appended claims.

The following examples pertain to further embodiments. Specifics in theexamples may be used anywhere in one or more embodiments. All optionalfeatures of the apparatus described herein may also be implemented withrespect to a method or process.

For example, in one embodiment a method for performance measurementcomprises: executing active probing on a physical layer by acommunication device coupled to another communication device via anetwork forming a communication link; reading operational dataassociated with the communication link in response to executing activeprobing; and measuring performance, by the communication device, of thecommunication link with reference to the communication device, theperformance measured according to the read operational data.

In one embodiment, the operational data indicates a number of successfultransmissions of packets during active probing. In one embodiment, theoperational data indicates size of successful transmission of datathrough the communication link. In one embodiment, the operational datais from layer 1 or layer 2 associated with the communication link.

In one embodiment, executing active probing comprises transmitting testdata configured to flood layer 1 or layer 2 of the network. In oneembodiment, measuring performance of the communication link comprisesapplying operational data associated with the test data and usertraffic. In one embodiment, the other communication device lacks abilityto execute active probing on Application Layer with the communicationdevice. In one embodiment, executing active probing comprises sendingpackets to the other communication device, the packets to use fullcapacity of layer 1 or layer 2 of the network. In one embodiment, thepackets are not application specific packets. In one embodiment,measuring performance is performed for different Quality-of-Service(QoS) settings in test data.

In one embodiment, measuring performance is performed for differentconfiguration settings of the communication device. In one embodiment,the configuration settings include at least one of: frequency band;bandwidth in use; QoS parameter; rate-adaptation method; coding method;beam-forming method; transmit power adaptation method; Request to Send(RTS) and Clear to Send (CTS); frame-bursting; channel; channel bonding;guard interval length; fragmentation threshold; retry limit; on/off ofRTS and CTS; beacon interval; transmit power; multiple antenna mode;preamble setting; modulation and coding scheme; or Quality of Service(QoS) setting.

In one embodiment, executing active probing is performed before or afterexecuting passive probing with a first configuration setting. In oneembodiment, the method further comprises: executing passive probing witha second configuration setting; and executing active probing with thesecond configuration setting, the second configuration setting beingdifferent from the first configuration setting. In one embodiment,measuring performance comprises measuring throughput of thecommunication device with first and second configuration settings.

In one embodiment, executing passive probing comprises: readingoperational data which includes data related to channel and its noisecondition and counter values related to user data traffic between thecommunication device and another communication device, wherein theoperational data is relevant to the current settings of thecommunication device. In one embodiment, executing active probingcomprises: transmitting active probing data from the communicationdevice to the other communication device over layer 1 or layer 2 of thenetwork; and waiting for a predetermined time before reading operationaldata.

In one embodiment, executing active probing comprises: transmittingactive probing data from the communication device to the othercommunication device over layer 1 or layer 2 of the network; andreceiving a report indicating amount of data or data received by theother communication device.

In one embodiment, the communication device comprises at least one of:an access point (AP); a base station; a wireless local area network(LAN) device; a digital subscriber line access multiplexer (DSLAM); agateway; a performance enhancement device; a Digital Subscriber Line(DSL) Customer Premises Equipment (CPE) modem; an in-home powerlinedevice; a Home Phoneline Network Alliance (HPNA) based device; anin-home coax distribution device; a G.hn (Global Home NetworkingStandard) compatible device; an in-home metering communication device;an in-home appliance communicatively interfaced with the LAN; a wirelessfemtocell base station; a wireless WiFi compatible base station; awireless mobile device repeater; a wireless mobile device base station;nodes within an ad-hoc/mesh network; a set-top box (STB)/set-top unit(STU) customer electronics device; an Internet Protocol (IP) enabledtelevision; an IP enabled media player; an IP enabled gaming console; anEthernet gateway; a computing device connected to the LAN; an Ethernetconnected computer peripheral device; an Ethernet connected router; anEthernet connected wireless bridge; an Ethernet connected networkbridge; and an Ethernet connected network switch.

In another example, a machine-readable storage medium is provided havingmachine executable instructions that when accessed by a computer, causethe computer to perform a method for performance measurement asdiscussed herein.

In another example, a system for performance measurement comprises: anetwork; and a first communication device communicatively coupled to asecond communication device via the network, the first communicationdevice operable to: execute active probing on a physical layer by thefirst communication; and measure throughput, by the first communicationdevice, of the network.

In one embodiment, the first communication device is operable to readoperational data associated with the communication link in response toexecuting active probing. In one embodiment, the first communicationdevice operable to measure throughput according to the read operationaldata. In one embodiment, the operational data indicates a number ofsuccessful transmissions of packets during active probing. In oneembodiment, the operational data indicates size of successfultransmission of data through the communication link. In one embodiment,the operational data is from layer 1 or layer 2 associated with thecommunication link. In one embodiment, the first communication device isoperable to execute active probing by transmitting test data configuredto flood layer 1 or layer 2 of the network.

In one embodiment, first communication device to measure performance ofthe communication link by applying operational data associated with thetest data and user traffic. In one embodiment, the second communicationdevice lacks ability to execute active probing on Application Layer withthe communication device. In one embodiment, the first communicationdevice to execute active probing by sending packets to the secondcommunication device, the packets to use full capacity of layer 1 orlayer 2 of the network. In one embodiment, the packets are notapplication specific packets. In one embodiment, the first communicationdevice to measure performance is performed for differentQuality-of-Service (QoS) settings in test data.

In one embodiment, the first communication device to measure performancefor different configuration settings of the first communication device,wherein the configuration settings include at least one of: frequencyband; bandwidth in use; QoS parameter; rate-adaptation method; codingmethod; beam-forming method; transmit power adaptation method; Requestto Send (RTS) and Clear to Send (CTS); frame-bursting; channel; channelbonding; guard interval length; fragmentation threshold; retry limit;on/off of RTS and CTS; beacon interval; transmit power; multiple antennamode; preamble setting; modulation and coding scheme; or Quality ofService (QoS) setting.

In one embodiment, the first communication device is operable to executepassive probing with a first configuration setting before or afterexecuting active probing. In one embodiment, the first communicationdevice is operable to: execute passive probing with a secondconfiguration setting; and execute active probing with the secondconfiguration setting, the second configuration setting being differentfrom the first configuration setting. In one embodiment, the firstcommunication device is operable to measure performance by measuringthroughput of the first communication device with first and secondconfiguration settings. In one embodiment, the first communicationdevice is operable to execute passive probing by reading operationaldata which includes data related to channel and its noise condition andcounter values related to user data traffic between the firstcommunication device and second communication device, wherein theoperational data is relevant to the current settings of thecommunication device.

In one embodiment, the first communication device is operable executeactive probing by transmitting active probing data from the firstcommunication device to the second communication device over layer 1 orlayer 2 of the network; and by waiting for a predetermined time beforereading operational data. In one embodiment, the first communicationdevice is operable to execute active probing by: transmitting activeprobing data from the first communication device to the secondcommunication device over layer 1 or layer 2 of the network; andreceiving a report indicating amount of data or data received by thesecond communication device.

In one embodiment, the first communication device comprises at least oneof: an access point (AP); a base station; a wireless local area network(LAN) device; a digital subscriber line access multiplexer (DSLAM); agateway; a performance enhancement device; a Digital Subscriber Line(DSL) Customer Premises Equipment (CPE) modem; an in-home powerlinedevice; a Home Phoneline Network Alliance (HPNA) based device; anin-home coax distribution device; a G.hn (Global Home NetworkingStandard) compatible device; an in-home metering communication device;an in-home appliance communicatively interfaced with the LAN; a wirelessfemtocell base station; a wireless WiFi compatible base station; awireless mobile device repeater; a wireless mobile device base station;nodes within an ad-hoc/mesh network; a set-top box (STB)/set-top unit(STU) customer electronics device; an Internet Protocol (IP) enabledtelevision; an IP enabled media player; an IP enabled gaming console; anEthernet gateway; a computing device connected to the LAN; an Ethernetconnected computer peripheral device; an Ethernet connected router; anEthernet connected wireless bridge; an Ethernet connected networkbridge; and an Ethernet connected network switch.

An abstract is provided that will allow the reader to ascertain thenature and gist of the technical disclosure. The abstract is submittedwith the understanding that it will not be used to limit the scope ormeaning of the claims. The following claims are hereby incorporated intothe detailed description, with each claim standing on its own as aseparate embodiment.

The invention claimed is:
 1. A method for performance measurement, themethod comprising: sending, by a communication device coupled to anothercommunication device via a communication link of a network, packets tothe another communication device, the packets to use full capacity ofthe communication link at layer 1 or layer 2 the packets comprise one ormore packets to be dropped by the another communication device at acommunication layer 3 or above; reading operational data associated withthe communication link in response to sending said packets; andmeasuring performance, by the communication device, of the communicationlink with reference to the communication device, the performancemeasured according to the read operational data.
 2. The method of claim1, wherein sending packets to the another communication device comprisesexecuting active probing.
 3. The method of claim 2, wherein executingactive probing comprises sending packets that are not intended for anapplication at the another communication device but that ensure fullcapacity use of layer 1 or layer 2 of the network.
 4. The method ofclaim 1, wherein said packets comprise packets for user generatedtraffic.
 5. The method of claim 1, wherein the operational dataindicates at least one of: a) a number of successful transmissions ofpackets; or b) a size of successful transmission of data through thecommunication link.
 6. The method of claim 1, wherein the anothercommunication device lacks ability to execute active probing on anApplication Layer with the communication device.
 7. The method of claim1 wherein measuring performance is performed for at least one of (a)different Quality-of-Service settings in test data; or (b) differentconfiguration settings of the communication device.
 8. The method ofclaim 7, wherein the configuration settings include at least one of:frequency band; bandwidth in use; Quality-of-Service parameter;rate-adaptation method; coding method; beam-forming method; transmitpower adaptation method; Request to Send and Clear to Send;frame-bursting; channel; channel bonding; guard interval length;fragmentation threshold; retry limit; on/off of Request to Send andClear to Send; beacon interval; transmit power; multiple antenna mode;preamble setting; modulation and coding scheme; or Quality of Servicesetting.
 9. The method of claim 2 wherein executing active probing isperformed before or after executing passive probing with a firstconfiguration setting.
 10. The method of claim 9 further comprising:executing passive probing with a second configuration setting; andexecuting active probing with the second configuration setting, thesecond configuration setting being different from the firstconfiguration setting; wherein measuring performance optionallycomprises measuring throughput of the communication device with firstand second configuration settings.
 11. The method of claim 10, whereinexecuting passive probing comprises: reading operational data whichincludes data related to a channel and its noise condition and countervalues related to user data traffic between the communication device andanother communication device, wherein the operational data is relevantto the current settings of the communication device.
 12. The method ofclaim 2 wherein executing active probing comprises: (a) transmittingactive probing data from the communication device to the anothercommunication device over layer 1 or layer 2 of the network and waitingfor a predetermined time before reading operational data; or (b)transmitting active probing data from the communication device to theanother communication device over layer 1 or layer 2 of the network andreceiving a report indicating an amount of data or data received by theanother communication device.
 13. The method of claim 1 wherein thecommunication device comprises at least one of: an access point; a basestation; a wireless local area network device; a digital subscriber lineaccess multiplexer; a gateway; a performance enhancement device; aDigital Subscriber Line Customer Premises Equipment modem; an in-homepowerline device; a Home Phoneline Network Alliance based device; anin-home coax distribution device; a G.hn compatible device; an in-homemetering communication device; an in-home appliance communicativelyinterfaced with a Local Area Network; a wireless femtocell base station;a wireless WiFi compatible base station; a wireless mobile devicerepeater; a wireless mobile device base station; nodes within anad-hoc/mesh network; a set-top box/set-top unit customer electronicsdevice; an Internet Protocol enabled television; an Internet Protocolenabled media player; an Internet Protocol enabled gaming console; anEthernet gateway; a computing device connected to a Local Area Network;an Ethernet connected computer peripheral device; an Ethernet connectedrouter; an Ethernet connected wireless bridge; an Ethernet connectednetwork bridge; or an Ethernet connected network switch.
 14. The methodof claim 1 wherein said sending, said reading and said measuring areperformed by performance measuring software at said communicationdevice, and wherein the method does not involve using correspondingperformance measuring software at the another communication device. 15.A system for performance measurement, the system comprising: acommunication link; and a communication device coupled to anothercommunication device via the communication link, the communicationdevice operable to send packets to the another communication device touse full capacity of the communication link at layer 1 or layer 2, thepackets comprise one or more packets to be dropped by the anothercommunication device at a communication layer 3 or above; readoperational data associated with the communication link in response tosending said packets; and measure performance of the communication linkwith reference to the communication device, the performance measuredaccording to the read operational data.
 16. The system of claim 15,wherein said packets comprise packets for user generated traffic. 17.The system of claim 15, wherein some or all of said packets are notintended for an application at the another communication device.
 18. Thesystem of claim 15 wherein the communication device comprises at leastone of: an access point; a base station; a wireless local area networkdevice; a digital subscriber line access multiplexer; a gateway; aperformance enhancement device; a Digital Subscriber Line CustomerPremises Equipment modem; an in-home powerline device; a Home PhonelineNetwork Alliance based device; an in-home coax distribution device; aG.hn compatible device; an in-home metering communication device; anin-home appliance communicatively interfaced with a Local Area Network;a wireless femtocell base station; a wireless WiFi compatible basestation; a wireless mobile device repeater; a wireless mobile devicebase station; nodes within an ad-hoc/mesh network; a set-top box/set-topunit customer electronics device; an Internet Protocol enabledtelevision; an Internet Protocol enabled media player; an InternetProtocol enabled gaming console; an Ethernet gateway; a computing deviceconnected to a Local Area Network; an Ethernet connected computerperipheral device; an Ethernet connected router; an Ethernet connectedwireless bridge; an Ethernet connected network bridge; or an Ethernetconnected network switch.
 19. A non-transitory computer-readable mediumor media comprising one or more sequences of instructions which, whenexecuted by one or more processors, causes steps for performancemeasurement at a communication device to be performed comprising:sending packets to an another communication device coupled to thecommunication device via a communication link of a network, the packetsto use full capacity of the communication link at layer 1 or layer 2,the packets comprise one or more packets to be dropped by the anothercommunication device at a communication layer 3 or above; readingoperational data associated with the communication link in response tosending said packets; and measuring performance of the communicationlink with reference to the communication device, the performancemeasured according to the read operational data.
 20. The non-transitorycomputer-readable medium or media of claim 19, wherein some or all ofsaid packets are not intended for an application at the anothercommunication device.